#include <iostream>
#include <string>

/*
当子类继承的父类是类模板时，子类在继承父类时，需要指定父类的模板参数。
如果不指定父类的模板参数，编译器无法给子类分配内存空间。
如果想灵活指定父类的模板参数，需要在子类的模板参数列表中指定。
*/
template <class T>
class Base
{
public:
    T m;
};

class Son : public Base<int>
{

};

void test01()
{
    Son s;
    s.m = 10;
}

template <class T1, class T2>
class Son2 : public Base<T2>
{
public:
    T1 obj1;
};

void test02()
{
    Son2<int, char> s2;
}

int main()
{
    
    return 0;
}